// 此文件判断必填项是否已填写

import store from '@/store'
/* 判断数据是否为空*/

// 基础数据
export function baseInfoReview(data) {
	const BasicField = [
		{ value: '基金代码（六位）', key: 'fundCode' }, // 基金代码（六位）
		{ value: '产品简称', key: 'fundName' }, // 产品简称
		{ value: '产品名称', key: 'fundFullName' }, // 产品名称
		{ value: '运作方式', key: 'operateMode' }, // 运作方式
		{ value: '受托责任', key: 'fiduciaryDuty' }, // 受托责任
		{ value: '结算币种', key: 'settleCurrency' }, // 结算币种
		{ value: '面值（单位：元）', key: 'faceValue' }, // 面值
		{ value: '产品类别', key: 'fundType' }, // 产品类别
		{ value: '产品类型（人行二期）', key: 'pobcFundType' }, // 产品类型（人行二期）
		{ value: '风险等级', key: 'riskGrade' }, // 风险等级
		{ value: '是否QDII', key: 'isQdii' }, // 是否QDII
		{ value: '是否指数基金', key: 'isIndexFund' }, // 是否指数基金
		{ value: '分级基金类型', key: 'isGradFund' }, // 分级基金类型
		{ value: '是否内地互认基金', key: 'isMutualFund' }, // 是否内地互认基金
		{ value: '是否为主动管理', key: 'isActiveManage' }, // 是否为主动管理
		{ value: '管理方式（人行二期）', key: 'managerStyle' }, // 管理方式（人行二期）
		{ value: '是否有发行机构提前终止权（人行二期）', key: 'issuerEarlyTermFlag' }, // 是否有发行机构提前终止权（人行二期）
		{ value: '是否收益权转让产品（人行二期）', key: 'usufructTransferProductFlag' }, // 是否收益权转让产品（人行二期）
		{ value: '是否货币市场基金（人行二期）', key: 'currencyMarketFundFlag' }, // 是否货币市场基金（人行二期）
		{ value: '产品资产是否存在增信措施（人行二期）', key: 'isAddcreditMeasure' }, // 产品资产是否存在增信措施（人行二期）
		{ value: '是否MOM', key: 'isMom' }, // 是否MOM
		{ value: '收益特征', key: 'revenueFeature' }, // 收益特征
		{ value: '是否净值型产品', key: 'isNetWorthProduct' }, // 是否净值型产品
		{ value: '是否避险策略基金', key: 'isRiskTacticsFund' }, // 是否避险策略基金
		{ value: '是否上市交易', key: 'isMarketTrade' }, // 是否上市交易
		{ value: '是否养老目标基金', key: 'isPensionTargetFund' }, // 是否养老目标基金
		{ value: '是否ETF联接基金', key: 'isEtfJoinFund' }, // 是否ETF联接基金
		{ value: '是否发起式基金', key: 'isSponsoredFund' }, // 是否发起式基金
		{ value: '业绩比较基准', key: 'performanceBaseline' }, // 业绩比较基准
		{ value: '产品类型（证监会资管月报）', key: 'productAssetReportType' }, //  产品类型（证监会资管月报）
		{ value: '非港股通交易日是否暂停申赎', key: 'noneHKTIsStopApplyRansom' }, // 非港股通交易日是否暂停申赎
		{ value: '跨境理财通（人行）', key: 'crossBorderFinancial' }, // 跨境理财通（人行）
		{ value: '以财产权信托名义开展的资金信托（人行）', key: 'propertyFundTrust' }, // 以财产权信托名义开展的资金信托（人行）
		{ value: '报社', key: 'newspaperId' } // 报社
	]
	const unfilledList = []
	BasicField.forEach(item => {
		if (!data[item.key]) {
			unfilledList.push(item.value)
		}
	})
	if (data.isInnovateNature === '0') { // 判断创新属性
		if (!data.innovateNatureRemark) {
			unfilledList.push('创新属性')
		}
	}
	if (data.isAddcreditMeasure === '0') { // 判断产品资产是否存在增信措施（人行二期）
		if (!data.addCreditFormType || !data.addCreditOrganType || !data.addcreditMeasureType) {
			if (!data.addCreditFormType) {
				unfilledList.push('增信形式（人行二期）')
			}
			if (!data.addCreditOrganType) {
				unfilledList.push('增信机构类型（人行二期）')
			}
			if (!data.addcreditMeasureType) {
				unfilledList.push('增信措施类别')
			}
		}
	}
	if (data.operateMode === '1') { // 判断开放频率
		if (!data.openFrequency) {
			unfilledList.push('开放频率（证监）')
		}
	}
	if (data.isMom === '0') { // 判断是否子资产单元
		if (!data.isSubAssets) {
			unfilledList.push('是否子资产单元')
		}
	}
	if (data.isSubAssets === '0') { // 判断管理人中管理人产品代码
		if (!data.momFundCode) {
			unfilledList.push('管理人中管理人产品代码')
		}
	}
	if (data.operateMode === '1' && data.openFrequency === '9') { // 判断开放频率（证监）备注
		if (!data.openFrequencyRemark) {
			unfilledList.push('开放频率（证监）备注')
		}
	}
	if (data.isNetWorthProduct === '0') { // 判断估值频率和估值方法
		if (!data.valuationWay) {
			unfilledList.push('估值方法')
		}
		if (!data.valuationFrequency) {
			unfilledList.push('估值频率')
		}
	}
	if (data.isRiskTacticsFund === '0') { // 判断保障义务人代码和保证义务人名称
		if (!data.ensureObligorCode) {
			unfilledList.push('保障义务人代码')
		}
		if (!data.ensureObligorName) {
			unfilledList.push('保障义务人名称')
		}
	}
	if (data.isMarketTrade === '0') { // 判断上市基金类型和上市交易所
		if (!data.marketFundType) {
			unfilledList.push('上市基金类型')
		}
		if (!data.marketTradeSite) {
			unfilledList.push('上市交易场所')
		}
	}
	if (data.isPensionTargetFund === '0') { // 判断投资策略
		if (!data.investTactics) {
			unfilledList.push('投资策略')
		}
	}
	if (data.isEtfJoinFund === '0') { // 判断目标基金代码和目标基金名称
		if (!data.targetFundCode) {
			unfilledList.push('目标基金代码')
		}
		if (!data.targetFundName) {
			unfilledList.push('目标基金名称')
		}
	}
	if (data.isOrganCustom === '0') { // 判断定制机构信息
		if (!data.organCustom) {
			unfilledList.push('定制机构信息')
		}
	}
	if (data.isSponsoredFund === '0') { // 判断是否是发起发式基金
		if (!data.sponsoredSelfCapital) {
			unfilledList.push('发起式自有资金')
		}
		if (!data.sponsoredAgreedTerm) {
			unfilledList.push('发起式约定年限')
		}
	}
	if (data.isSingleShare === '1') { // 判断下属基金
		if (data.branchShareList.length) {
			if (data.branchShareList.some(item => !item.fundCode)) {
				unfilledList.push('下属基金代码')
			}
			if (data.branchShareList.some(item => !item.subFundType)) {
				unfilledList.push('下属基金类型')
			}
			if (data.branchShareList.some(item => !item.estimatedRaisedAmount)) {
				unfilledList.push('预计募集金额')
			}
			if (data.isGradFund === '2') {
				if (data.branchShareList.some(item => !item.shareCategory)) {
					unfilledList.push('份额类别')
				}
			}
			for (let index = 0; index < data.branchShareList.length; index++) {
				const element = data.branchShareList[index]
				if (element.isItSuitable === '0' && !element.estimatedAnnualRate) {
					unfilledList.push('预计年收益率')
				}
			}
		}
	}

	return unfilledList
}

// 日期
export function dateReview(data) {
	const unfilledList = []
	if (!data.raiseStartDate) {
		unfilledList.push('募集起始日')
	}
	if (store.state.fundStep.publicBaseInfo.evolveBeforeCode) {
		if (!data.formalEvolveDate) {
			unfilledList.push('正式转型日期')
		}
	}
	if (store.state.fundStep.publicBaseInfo.operateMode === '1' && !!store.state.fundStep.publicBaseInfo.openFrequency && store.state.fundStep.publicBaseInfo.openFrequency !== '1') {
		if (!data.nextOpenFirstDate) {
			unfilledList.push('下次开放期首日')
		}
	}
	if (store.state.fundStep.publicBaseInfo.isHoldFund === '0') {
		if (!data.firstRedemptionDate) {
			unfilledList.push('首次打开赎回日')
		}
	}
	return unfilledList
}

// 机构信息
export function iorganInfoReview(data) {
	const unfilledList = []
	if (!data.managementId) {
		unfilledList.push('管理人名称')
	}
	if (data.iscustodyBranchOrgan === '0') {
		if (!data.custodyBranchOrganName) {
			unfilledList.push('托管人分支机构名称')
		}
	}
	return unfilledList
}

// 费率信息
export function rateReview(data) {
	const unfilledList = []
	if (!data.feeRateAlgorithm) {
		unfilledList.push('管理费算法')
	} else {
		if (data.feeRateAlgorithm === '2') {
			if (!data.feeRateInfoList.find(item => item.feeRateType === '9').feeRate) {
				unfilledList.push('管理费率')
			}
		}
	}
	if (!data.custodyFeeAlgorithm) {
		unfilledList.push('托管费算法')
	} else if (data.custodyFeeAlgorithm === '1') {
		if (!data.feeRateInfoList.find(item => item.feeRateType === '7').feeRate) {
			unfilledList.push('托管费率')
		}
	}
	if (!data.isAchieveReward) {
		unfilledList.push('是否提取业绩报酬')
	}
	if (data.isAchieveReward === '0') {
		if (!data.accrualPointTime) {
			unfilledList.push('计提时点')
		}
		if (!data.rewardExplain) {
			unfilledList.push('业绩报酬说明')
		}
		if (!data.accrualDatum) {
			unfilledList.push('计提基准')
		}
		if (!data.accrualRatio) {
			unfilledList.push('计提比例')
		}
	}
	for (let index = 0; index < data.feeRateInfoList.length; index++) {
		const element = data.feeRateInfoList[index]
		if (element.feeRateType === '8') {
			if (!element.salesServiceFeeAlgorithm) {
				if (!unfilledList.includes('销售服务费算法')) {
					unfilledList.push('销售服务费算法')
				}
			} else if (element.salesServiceFeeAlgorithm === '2') {
				if (!element.feeRate) {
					if (!unfilledList.includes('销售服务费率')) {
						unfilledList.push('销售服务费率')
					}
				}
			}
		}
	}
	return unfilledList
}

// 投资相关
export function inverReview(data) {
	const unfilledList = []
	if (!data.isQuantTactics) {
		unfilledList.push('是否采用量化策略')
	}
	if (data.isContainSpclLimit === '0') {
		if (!data.spclLimitRemark) {
			unfilledList.push('特殊投资限制备注')
		}
	}
	return unfilledList
}

// 文件信息
export function FileInfoReview(fundFileInfo) {
	const unfilledList = []
	if (!fundFileInfo['raiseLogonReplyId'] || !fundFileInfo['raiseLogonReplyId'].finalFileId && !fundFileInfo['raiseLogonReplyId'].firstFileId && !fundFileInfo['raiseLogonReplyId'].sealedFileId) {
		unfilledList.push('募集注册批复')
	}
	if (!fundFileInfo['foundReplyId'] || !fundFileInfo['foundReplyId'].finalFileId && !fundFileInfo['foundReplyId'].firstFileId && !fundFileInfo['foundReplyId'].sealedFileId) {
		unfilledList.push('成立批复')
	}
	return unfilledList
}

// 完成页面
export function submitPageReview(fundBaseInfo, isEnterDateHtmlPro, btnType) {
	const unfilledList = []
	if (['3', '7'].includes(btnType)) {
		if (isEnterDateHtmlPro === '3') {
			if (!fundBaseInfo.changeDate) {
				unfilledList.push('日期')
			}
			if (!fundBaseInfo.raisingStatus) {
				unfilledList.push('募集状态')
			}
			if (!fundBaseInfo.changeRemark) {
				unfilledList.push('备注')
			}
		} else {
			if (!fundBaseInfo.changeDate) {
				unfilledList.push('日期')
			}
			if (!fundBaseInfo.changeRemark) {
				unfilledList.push('备注')
			}
		}
	} else {
		if (!fundBaseInfo.checkLiableId) {
			unfilledList.push('复核人')
		}
		if (!fundBaseInfo.personLiableId) {
			unfilledList.push('责任人')
		}
	}
	return unfilledList
}
